//package com.ruoyi.common;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import com.alibaba.excel.EasyExcel;
//import com.alibaba.excel.write.handler.WriteHandler;
//import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
//import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
//
//public class LargeDataExportExample {
//    public static void main(String[] args) {
//        String fileName = "D:\\java_project\\mall\\大用户数据.xlsx";
//
//        // 创建一个写入器，但不立即写入文件，而是通过writerSheet方法来处理每个sheet的写入。
//        EasyExcel.write(fileName)
//                 .head(User.class) // 设置表头模型类
//                 .sheet("用户信息") // 设置sheet名称
//                 .doWrite(data -> {
//                     for (User user : data) {
//                         // 处理逻辑，如添加到集合等，但不立即写入文件，直到达到一定数量后再写入文件。
//                     }
//                 });
//        
//                 .doWrite(new WriteHandler() { // 使用WriteHandler接口来处理写入逻辑，支持分页写入等高级功能。
//                     @Override
//                     public void invoke(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder, WriteTableDataHolder writeTableDataHolder) {
//                         // 这里可以自定义分页查询并写入逻辑。例如：
//                         int pageSize = 10000; // 每页10000条数据。
//                         int page = 1; // 页码从1开始。
//                         while (true) { // 假设有一个方法可以根据页码获取用户列表。
//                             List<User> userList = getUsersByPage(page, pageSize); // 获取当前页的用户数据。
//                             if (userList.isEmpty()) { // 如果当前页没有数据，则结束循环。
//                                 break;
//                             }
//                             writeTableDataHolder.write(userList); // 写入当前页的数据。
//                             page++; // 页码递增。
//                         }
//                     }
//
//				
//                 });
//    }
//	private static List<User>  getUsersByPage(int page, int pageSize) {
//		List<User> list = new ArrayList<User>();
//    	for (int i = page; i < pageSize; i++) {
//    		list.add(new User("张三"+i, 28+i));
//		}
//        return list;
//	}
//   
//}